package com.gollum.system.service;

import com.alibaba.fastjson2.JSONObject;
import com.gollum.common.domain.response.TableSupport;
import com.gollum.jpa.service.JpaServer;
import com.gollum.system.domain.model.SysConfig;
import com.gollum.system.domain.model.SysOperLog;
import com.gollum.system.domain.request.SysConfigRequest;
import com.gollum.system.domain.response.SysConfigResponse;

import java.util.List;

/**
 * 系统参数配置接口
 *
 * @author Herther
 * @version 1.0.0
 * @createTime 2022年09月04日 22:12:00
 */
public interface SysConfigService extends JpaServer<SysConfig,Long> {


    /**
     * 根据参数key 获取 参数值
     * @param  keyName 参数key
     * @return SysConfig 参数对象
     * @auther: Herther
     * @version 1.0.0
     * @date: 2022/9/4 22:14
     */
    String getConfigValue(String keyName);

    /**
     * 分页查询系统参数
     *
     * @param params 系统参数
     * @return TableSupport table表
     * @auther: Herther
     * @since 1.0.0
     * @date: 2022/9/21 22:06
     */
    TableSupport<SysConfigResponse> listPage(SysConfigRequest params);

    /**
     * 根据ID查询详情
     * @param id id
     * @return SysConfigResponse
     * @auther: Herther
     * @since 1.0.0
     * @date: 2022/9/20 23:33
     */
    SysConfigResponse getDetailById(Long id);

    /**
     * 根据类型查询配置
     *
     * @param jsonObject 查询类型
     * @return List<SysConfigResponse>
     * @auther: Herther
     * @since 1.0.0
     * @date: 2022/10/18 23:08
     */
    List<SysConfigResponse> getConfig(JSONObject jsonObject);
}
